From: Florian Müllner Date: Wed, 15 Mar 2023 19:11:39 +0000 (+0100) Subject: endSessionDialog: Catch async errors X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~371^2^2~87 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=34712449da3f1d897ae07fc85c0234eb3a02da5c;p=gnome-shell.git endSessionDialog: Catch async errors Otherwise the actual error is masked by an "unhandled promise rejection" error, making it harder to track down the underlying cause. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6506 Part-of: --- diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js index 66fc2e6f9..3de1085ab 100644 --- a/js/ui/endSessionDialog.js +++ b/js/ui/endSessionDialog.js @@ -235,7 +235,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { this._loginManager = LoginManager.getLoginManager(); this._canRebootToBootLoaderMenu = false; - this._getCanRebootToBootLoaderMenu(); + this._getCanRebootToBootLoaderMenu().catch(logError); this._userManager = AccountsService.UserManager.get_default(); this._user = this._userManager.get_user(GLib.get_user_name()); @@ -449,7 +449,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { action: () => { let signalId = this.connect('closed', () => { this.disconnect(signalId); - this._confirm(signal); + this._confirm(signal).catch(logError); }); this.close(true); }, @@ -501,7 +501,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { _confirmRebootToBootLoaderMenu() { this._loginManager.setRebootToBootLoaderMenu(); - this._confirm('ConfirmedReboot'); + this._confirm('ConfirmedReboot').catch(logError); } async _confirm(signal) { @@ -589,7 +589,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { let dialogContent = DialogContent[this._type]; let button = dialogContent.confirmButtons[dialogContent.confirmButtons.length - 1]; - this._confirm(button.signal); + this._confirm(button.signal).catch(logError); this._timerId = 0; return GLib.SOURCE_REMOVE; @@ -759,7 +759,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { } if (dialogContent.showOtherSessions) - this._loadSessions(); + this._loadSessions().catch(logError); let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed;